{ INFORMATICS.MCCME.RU
  Problem statement: http://informatics.mccme.ru/moodle/mod/statements/view3.php?chapterid=159
  Verdict: Accepted
}
uses 
	SysUtils, Math;
 
const
	bigV:double=1e12;
	eps:double=1e-6;
 
var
	i,j,ii,n,nn:longint;
	a,t:array[0..10] of double;
	c,ans:double;
 
procedure go(i,j,n:longint);
 
var
	ik,jk,ii:longint;
	tj,ti,cur1,cur2,cc1,cc2,cca,ccm:double;
 
begin
ti:=t[i];
tj:=t[j];
t[i]:=bigV;
t[j]:=t[j]+ti;
cur1:=t[j];
ii:=nn-1;
if n>2 then begin
	for ik:=1 to ii do
		for jk:=ik+1 to nn do
			if (t[ik]<>bigV) and (t[jk]<>bigV) then go(ik,jk,n-1);
end;
t[j]:=tj;
t[j]:=(tj*ti)/(tj+ti); 
cur2:=t[j];
if n=2 then begin
	cc1:=abs(cur1-c);
	cc2:=abs(cur2-c);
	cca:=abs(ans-c);
	ccm:=min(cca,min(cc1,cc2));
	if abs(cc1-ccm)<eps then ans:=cur1 else
	if abs(cc2-ccm)<eps then ans:=cur2;
	t[j]:=tj;
	t[i]:=ti;
	exit;
end;
if n>2 then begin
	for ik:=1 to ii do
		for jk:=ik+1 to nn do
			if (t[ik]<>bigV) and (t[jk]<>bigV) then go(ik,jk,n-1);	
end; 
t[j]:=tj;
t[i]:=ti;
end;
 
begin
reset(input,'input.txt');
rewrite(output,'output.txt');
read(n,c);
nn:=n;
for i:=1 to n do
	read(a[i]);
if n=1 then write(a[1]) else begin
	ans:=maxlongint;
	ii:=n-1;
	for i:=1 to ii do
		for j:=i+1 to n do begin
			t:=a;
			go(i,j,n); 
		end;
	write(ans:0:16);
end;
end.